import { readonly } from 'vue'

import { StorageType } from '@/storage'
export interface GlobalConfig {
  /** api url */
  baseApiUrl: string
  /* 文件基本路径 */
  baseFilesUrl: string
  /* 系统设置模块跟地址 */
  systemApiUrl: string
  /* 是否合并路由 */
  mergeRouter: boolean
}

export function defineConfig(config: GlobalConfig) {
  return readonly(config)
}

export interface WaterMarkFont {
  color?: string
  fontSize?: string
  fontWeight?: 'normal' | 'light' | 'weight' | number
  fontStyle?: 'none' | 'normal' | 'italic' | 'oblique'
  fontFamily?: string
  textAlign?: 'left' | 'right' | 'center' | 'start' | 'end'
  textBaseline?:
    | 'top'
    | 'hanging'
    | 'middle'
    | 'alphabetic'
    | 'ideographic'
    | 'bottom'
}

export interface SettingConfing {
  /* layout */
  MianLayoutName: string
  /* login */
  LoginMainLayoutName: string
  /* home */
  HomeName: string
  /* 大屏 */
  LargeScreenLayout: string
  /* 404 */
  Error404Name: string
  /* 看板 */
  KanBanName: string
  /* 403 */
  NotAuth403: string
  // 存储 前缀
  storagePrefix: string
  // 存储方式
  storageType: StorageType
  // tag 关闭 是否进行缓存清除
  isClearCached: boolean
  // 水印 内容
  watermarkContent: string
  // 水印样式配置
  font: WaterMarkFont
  // 是否开启水印
  watermarkEnabled: boolean
}
export const defaultSetting = (config: SettingConfing) => readonly(config)
